﻿Imports System.IO
Imports System.Net

Public Class FTP
    Shared Sub SendFTP(ByRef rp As DotNetResponse.SQLPersistence, ByVal strRutaOrigen As String, ByVal strRutaFtp As String, ByVal cnn As String)
        Try
            Dim objFile As New FileInfo(strRutaOrigen)
            My.Computer.Network.UploadFile(strRutaOrigen, strRutaFtp & objFile.Name, DotNetDAL.Generica.GetSQLConfig("ftp_usuario", cnn), DotNetDAL.Generica.GetSQLConfig("ftp_clave", cnn))

            'DotNetDAL.Generica.SaveEventViewer("Aplicacion SIS - FTP", EventLogEntryType.SuccessAudit, "strRutaFtp:" & strRutaFtp & "_" & objFile.Name & "_" & DotNetDAL.Generica.GetSQLConfig("ftp_usuario", cnn) & "_" & DotNetDAL.Generica.GetSQLConfig("ftp_clave", cnn))


        Catch ex As Exception
            'DotNetDAL.Generica.SaveEventViewer("Aplicacion SIS - FTP", EventLogEntryType.Error, rp.MensajeError)

            rp.Errores = True
            rp.MensajeError = ex.Message
        End Try
    End Sub
    Shared Sub SendFTP(ByRef rp As DotNetResponse.SQLPersistence, ByVal strRutaOrigen As String, ByVal strRutaFtp As String, ByVal strFileFtp As String, ByVal ftp_clave As String, ByVal ftp_usuario As String)

        Try
            Dim objFile As New FileInfo(strRutaOrigen)
            My.Computer.Network.UploadFile(strRutaOrigen, strRutaFtp & strFileFtp, ftp_usuario, ftp_clave)
            'RegistrarLog en eventViewer
            'DotNetDAL.Generica.SaveEventViewer("Aplicacion SIS - FTP", EventLogEntryType.SuccessAudit, "strRutaFtp:" & strRutaFtp & "_" & objFile.Name & "_ftp_usuario:" & ftp_usuario & "_ftp_clave:" & ftp_clave)

        Catch ex As Exception
            rp.Errores = True
            rp.MensajeError = ex.Message
        End Try

    End Sub


    Shared Sub GetFTPList(ByRef rp As DotNetResponse.SQLPersistence, ByRef objArrayListArchivos As ArrayList, ByVal cnn As String)
        Try
            rp.MensajeError = rp.MensajeError & "<br>" & "GetFtpList"
            Dim strDirFtp As FtpWebRequest = CType(FtpWebRequest.Create(DotNetDAL.Generica.GetSQLConfig("ftp_ruta_out", cnn)), FtpWebRequest)
            Dim objNC As New NetworkCredential(DotNetDAL.Generica.GetSQLConfig("ftp_usuario", cnn), DotNetDAL.Generica.GetSQLConfig("ftp_clave", cnn))
            strDirFtp.Credentials = objNC
            strDirFtp.Method = WebRequestMethods.Ftp.ListDirectory
            Dim objStreamReaderArchivos As New StreamReader(strDirFtp.GetResponse().GetResponseStream())
            Dim i As Integer

            rp.MensajeError = rp.MensajeError & "<br>" & "ArrayList de archivo "
            Do While i <> -1
                Try
                    objArrayListArchivos.Add(objStreamReaderArchivos.ReadLine())
                    i = objStreamReaderArchivos.Peek()
                Catch ex As Exception
                    i = -1
                    objArrayListArchivos = Nothing
                    rp.MensajeError = rp.MensajeError & "<br>" & "Fin ArrayList de archivo " & i & "__" & ex.Message
                End Try
            Loop

            objStreamReaderArchivos.Close()

            'OJO
            rp.MensajeError = rp.MensajeError & "<br>" & "Fin GetFtpList"

        Catch ex As Exception
            rp.Errores = True
            rp.MensajeError = rp.MensajeError & "<br>" & ex.Message
        End Try
    End Sub


    Shared Sub DownloadFTP(ByRef rp As DotNetResponse.SQLPersistence, ByVal strArchivo As String, ByVal strRuta As String, ByVal cnn As String)
        Try
            rp.MensajeError = rp.MensajeError & "<br>" & "Download FTP"
            

            If IO.File.Exists(strRuta & strArchivo) Then
                IO.File.Delete(strRuta & strArchivo)
            End If
            My.Computer.Network.DownloadFile(DotNetDAL.Generica.GetSQLConfig("ftp_ruta_out", cnn) & strArchivo, strRuta & strArchivo, DotNetDAL.Generica.GetSQLConfig("ftp_usuario", cnn), DotNetDAL.Generica.GetSQLConfig("ftp_clave", cnn))

            rp.MensajeError = rp.MensajeError & "<br>" & "Fin DownloadFTP"


        Catch ex As Exception
            rp.MensajeError = rp.MensajeError & "<br>" & ex.Message
        End Try
    End Sub

    Shared Sub DeleteFtp(ByRef rp As DotNetResponse.SQLPersistence, ByVal strArchivo As String, ByVal cnn As String)
        Try
            Dim strDirFtp As FtpWebRequest = CType(FtpWebRequest.Create(DotNetDAL.Generica.GetSQLConfig("ftp_ruta_out", cnn) & strArchivo), FtpWebRequest)
            Dim objNC As New NetworkCredential(DotNetDAL.Generica.GetSQLConfig("ftp_usuario", cnn), DotNetDAL.Generica.GetSQLConfig("ftp_clave", cnn))
            strDirFtp.Credentials = objNC
            strDirFtp.Method = WebRequestMethods.Ftp.DeleteFile
            strDirFtp.GetResponse()
        Catch ex As Exception
            rp.Errores = True
            rp.MensajeError = ex.Message
        End Try
    End Sub
End Class
